<?php
//include_once('DB.class.php');
class Kategoria{

	protected $BD;
	
	function __construct($BD){
		//require_once('bazadanych.class.php');
		//$this->BD = new cBazaDanych();
		$this->BD = $BD;
	}
	
	public function Dodaj($dane){
		// id_kategoria, nazwa, pis, reklama, newsow, klikniec
		$dane['id_kategoria'] = $this->BD->Max('kategorie', 'id_kategoria') + 1;
		return $this->BD->Insert('kategorie', $dane, false);
	}
	
	public function Usun($id_kategoria){
		$sql = "DELETE FROM `kategorie` WHERE `id_kategoria` = $id_kategoria;";
		return $this->BD->Zapytanie($sql, false, true);
	}
	
	public function Uaktualnij($dane){
		return $this->BD->Update('kategorie', $dane, 'id_kategoria', true);
	}
	
	public function Dane($id = false){
		$sql = ($id == false) ? "SELECT * FROM `kategorie` ORDER BY `nazwa`;" : "SELECT * FROM `kategorie` WHERE `id_kategoria` = $id;";
		return $this->BD->Zapytanie($sql, true, true);
	}
	
	public function DaneDzialami(){
		$sql = "SELECT * FROM `kategorie` ORDER BY `dzial`, `nazwa`;";
		$wyniksql = $this->BD->Zapytanie($sql, true, true);
		$wynik = array();
		//print_r($wyniksql);
		//print_r($wyniksql[0]['dzial']);
		///*
		foreach ($wyniksql as $nr => $dane){
			$wynik[$dane['dzial']][$nr] = $dane;
		}
		//print_r($wynik);
		//*/
		return $wynik;
	}
	
	public function ZwiekszNewsy($id_kategoria){
		$sql = "UPDATE `kategorie` SET `newsow` = `newsow` + 1 WHERE `id_kategoria` = $id_kategoria;";
		return $this->BD->Zapytanie($sql, false, true);
	}
	
	public function ZmniejszNewsy($id_kategoria){
		$sql = "UPDATE `kategorie` SET `newsow` = `newsow` - 1 WHERE `id_kategoria` = $id_kategoria;";
		return $this->BD->Zapytanie($sql, false, true);
	}
	
	public function LiczbaNewsow($id_kategoria){
		$sql = "SELECT `kategorie` FROM `serwisy` WHERE `id_kategoria` = $id_kategoria;";
		return $this->BD->ZapytanieOLiczbe($sql);
	}
	
	public function UaktualnijStatystyki(){
		$sql = "SELECT COUNT(id_news) newsow, id_kategoria FROM newsy_kategorie GROUP BY id_kategoria;";
		$dane = $this->BD->Zapytanie($sql, true, true);
		foreach ($dane as $indeks => $wartosc){
			$sql = "UPDATE `kategorie` SET `newsow` = {$wartosc['newsow']} WHERE `id_kategoria` = {$wartosc['id_kategoria']};";
			$this->BD->Zapytanie($sql, false, true);
		}
		$sql = "SELECT SUM(n.klikniec) klikniec, nk.id_kategoria FROM newsy n, newsy_kategorie nk WHERE n.id_news = nk.id_news GROUP BY nk.id_kategoria;";
		$dane = $this->BD->Zapytanie($sql, true, true);
		foreach ($dane as $indeks => $wartosc){
			$sql = "UPDATE `kategorie` SET `klikniec` = {$wartosc['klikniec']} WHERE `id_kategoria` = {$wartosc['id_kategoria']};";
			$this->BD->Zapytanie($sql, false, true);
		}
		return true;
	}
	
	public function Statystyki($top, $dziedzina){
		$sql = "SELECT * FROM `kategorie` ORDER BY `$dziedzina` DESC ";
		if ($top != false) $sql .= "LIMIT $top";
		$sql .= ";";
		$wszystkie_dane = $this->BD->Zapytanie($sql, true, true);
		$tmp;
		foreach ($wszystkie_dane as $nr => $dane){
			$tmp[$dane['id_kategoria']] = $dane;
		}
		return $tmp;		
	}
	
	public function Klikniecie($id_kategoria){
		$sql = "UPDATE `kategorie` SET `klikniec` = `klikniec` + 1 WHERE `id_kategoria` = $id_kategoria;";
		return $this->BD->Zapytanie($sql, false, true);
	}
}
?>